#!/bin/bash

function hostA(){
# Configuracion de interfaces
ifconfig eth0 $HOST_A netmask $MASK_BARRA26  broadcast $BCAST_TRIANGULO

#Configuracion de tabla de ruteo
# Red FLAUTA TRAVERSA
route add -net $FLAUTA_TRAVERSA netmask $MASK_BARRA24 gw $H3_TRIANGULO dev eth0 metric 1
# Red XILOFON
route add -net $XILOFON netmask $MASK_BARRA30 gw $H2_TRIANGULO dev eth0 metric 1
# Red GAITA
route add -net $GAITA netmask $MASK_BARRA25 gw $H2_TRIANGULO dev eth0 metric 2
# Red CORNETA
route add -net $CORNETA netmask $MASK_BARRA28 gw $H2_TRIANGULO dev eth0 metric 2
# Red BANDONEON
route add -net $BANDONEON netmask $MASK_BARRA30 gw $H2_TRIANGULO dev eth0 metric 3
# Red CHARANGO
route add -net $CHARANGO netmask $MASK_BARRA27 gw $H2_TRIANGULO dev eth0 metric 4
# Red OBOE
route add -net $OBOE netmask $MASK_BARRA27 gw $H2_TRIANGULO dev eth0 metric 5
# Red TROMBON
route add -net $TROMBON netmask $MASK_BARRA24 gw $H2_TRIANGULO dev eth0 metric 5

# Configuracion de direccion de DNS
./restoDNS.sh
# Verifico si se configuro bien la direccion de DNS
if [ $? -ne 0 ]
then
	echo "La direccion de DNS no pudo ser configurada automaticamente. Por favor, hacerlo manualmente."
fi
}

function hostB(){
#Configuracion de interfaces
ifconfig eth0 $HOST_B netmask $MASK_BARRA27  broadcast $BCAST_OBOE

#Configuracion de tabla de ruteo
# Red TROMBON
route add -net $TROMBON netmask $MASK_BARRA24 gw $H31_OBOE dev eth0 metric 1
# Red CHARANGO
route add -net $CHARANGO netmask $MASK_BARRA27 gw $H31_OBOE dev eth0 metric 1
# Red CORNETA
route add -net $CORNETA netmask $MASK_BARRA28 gw $H31_OBOE dev eth0 metric 3
# Red GAITA
route add -net $GAITA netmask $MASK_BARRA25 gw $H31_OBOE dev eth0 metric 4
# Red TRIANGULO
route add -net $TRIANGULO netmask $MASK_BARRA26 gw $H31_OBOE dev eth0 metric 5
# Red FLAUTA TRAVERSA
route add -net $FLAUTA_TRAVERSA netmask $MASK_BARRA24 gw $H31_OBOE dev eth0 metric 6
# Red BANDONEON
route add -net $BANDONEON netmask $MASK_BARRA30 gw $H31_OBOE dev eth0 metric 2
# Red XILOFON
route add -net $XILOFON netmask $MASK_BARRA30 gw $H31_OBOE dev eth0 metric 4

# Configuracion de direccion de DNS
./concaranDNS.sh
# Verifico si se configuro bien la direccion de DNS
if [ $? -ne 0 ]
then
	echo "La direccion de DNS no pudo ser configurada automaticamente. Por favor, hacerlo manualmente."
fi
}

function hostC(){
#Configuracion de interfaces
ifconfig eth0 $HOST_C netmask $MASK_BARRA28  broadcast $BCAST_CORNETA

#Configuracion de tabla de ruteo
# Red FLAUTA TRAVERSA
route add -net $FLAUTA_TRAVERSA netmask $MASK_BARRA24 gw $H13_CORNETA dev eth0 metric 3
#Red TRIANGULO
route add -net $TRIANGULO netmask $MASK_BARRA26 gw $H13_CORNETA dev eth0 metric 2
# Red XILOFON
route add -net $XILOFON netmask $MASK_BARRA30 gw $H13_CORNETA dev eth0 metric 1
# Red GAITA
route add -net $GAITA netmask $MASK_BARRA25 gw $H13_CORNETA dev eth0 metric 1
# Red BANDONEON
route add -net $BANDONEON netmask $MASK_BARRA30 gw $H15_CORNETA dev eth0 metric 1
# Red CHARANGO
route add -net $CHARANGO netmask $MASK_BARRA27 gw $H15_CORNETA dev eth0 metric 2
# Red OBOE
route add -net $OBOE netmask $MASK_BARRA27 gw $H15_CORNETA dev eth0 metric 3
# Red TROMBON
route add -net $TROMBON netmask $MASK_BARRA24 gw $H15_CORNETA dev eth0 metric 3

# Configuracion de direccion de DNS
./restoDNS.sh
# Verifico si se configuro bien la direccion de DNS
if [ $? -ne 0 ]
then
	echo "La direccion de DNS no pudo ser configurada automaticamente. Por favor, hacerlo manualmente."
fi
}

#----------------------------------------------------#
#COMIENZO#

if [ ! -r ./Const.sh ]
then
    echo "ERROR: Falta el archivo de constantes o no tiene permisos de lectura."
    exit 4
fi

. ./Const.sh

if [ -z "$1" ]
then
	echo "ERROR: Ingrese argumento (A, B o C)."
	exit 1
fi
if [ "$1" != "A" -a "$1" != "B" -a "$1" != "C" ]
then
	echo "ERROR: Argumento ($1) invalido."
	exit 2
fi
if [ ! -x ./CleanUp.sh ]
then
	echo "ERROR: Falta script de Clean Up o no tiene permisos de ejecucion."
	exit 3
fi
if [ ! -x ./concaranDNS.sh ]
then
	echo "ERROR: Falta script de concaranDNS o no tiene permisos de ejecucion."
	exit 5
fi
if [ ! -x ./restoDNS.sh ]
then
	echo "ERROR: Falta script de restoDNS o no tiene permisos de ejecucion."
	exit 5
fi

/etc/rc.d/rc.ip_forward stop

echo "Se limpia la configuracion."

./CleanUp.sh

echo "Se configura el Host $1."

case $1 in
A) hostA;;
B) hostB;;
C) hostC;;
esac

echo "La configuracion ha finalizado con exito!"

